package jp.co.showbiz.admin.member.dao;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;

import jp.co.showbiz.admin.member.imp.MemberDTO;
import jp.co.showbiz.common.base.BaseDAO;

/**
 * クラス概要<br>
 * クラス説明<br>
 * 
 * @author $Author: $
 * @version $Revision: 1.1 $
 */
public class MemberDao extends BaseDAO {
	/**
	 * this is
	 * 
	 * @throws Exception
	 *             e
	 * @version 1.0
	 */
	public MemberDao() throws Exception {
		super();
	}

	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員の総数を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */
	public int getUserTotalCount(Object obj) throws SQLException {
		return (Integer) sqlMap.queryForObject("member.user_listTotal", obj);
	}
	
	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員一覧を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */
	public List<HashMap<String, Object>> getUserList(Object obj, int skip, int maxSize) throws SQLException {
		List<HashMap<String, Object>> list = select("member.user_list", obj, skip, maxSize);
		return list;
	}
	
	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員の詳細情報を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */
	public Object getUserQuery(Object obj) throws SQLException {
		return objSelect("member.user_query",obj);
	}	
	
	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員のポイント情報を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */
	public Object getPointQuery(Object obj) throws SQLException {
		return objSelect("member.point_query",obj);
	}

	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員のコンテンツダウンロード内訳の総数を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */	
	public int getDLTotalCount(Object obj) throws SQLException {
		return (Integer) sqlMap.queryForObject("member.point_dl_listTotal", obj);
	}
	
	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員のコンテンツダウンロード履歴を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */
	public List<HashMap<String, Object>> getDLList(Object obj, int skip, int maxSize) throws SQLException {
		List<HashMap<String, Object>> list = select("member.point_dl_list", obj, skip, maxSize);
		return list;
	}
	
	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員のポイント消費内訳の総数を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */	
	public int getPointInfoTotalCount(Object obj) throws SQLException {
		return (Integer) sqlMap.queryForObject("member.point_info_listTotal", obj);
	}
	
	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員のポイント消費内訳を取得する
	 * @param memberDTO
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */
	public List<HashMap<String, Object>> getPointInfoList(Object obj, int skip, int maxSize) throws SQLException {
		List<HashMap<String, Object>> list = select("member.point_info_list", obj, skip, maxSize);
		return list;
	}	
	
	/**
	 * メソッド概要<br>
	 * メソッド説明<br>
	 * 会員の気に入り情報を取得する
	 * @param i 
	 * @param skip 
	 * @param codeGroup
	 * @return resultList
	 * @throws SQLException
	 * @throws AppException
	 */
	public List<HashMap<String, Object>> getFavoriteList(Object obj, int skip, int maxSize) throws SQLException {
		List<HashMap<String, Object>> list = select("member.favorite_list", obj, skip, maxSize);
		return list;
	}

	public int getFavoriteTotalCount(Object obj) throws SQLException {
		// TODO Auto-generated method stub
		return (Integer) sqlMap.queryForObject("member.favorite_Total", obj);
	}
	
}
